/** 
 * @file	msp_lib.h
 * @brief	
 * 
 *  This file defines interfaces of module and dynamic library.
 * 
 * @author	hlli
 * @version	1.0
 * @date	2010-05-17
 * 
 * @see		
 * 
 * <b>History:</b><br>
 * <table>
 *  <tr> <th>Version	<th>Date		<th>Author	<th>Notes</tr>
 *  <tr> <td>1.0		<td>2010-05-17	<td>hlli	<td>Create this file</tr>
 * </table>
 * 
 */

#ifndef __MSP_LIB_H__
#define __MSP_LIB_H__

#ifdef __cplusplus
extern "C" {
#endif

typedef void* MSP_MODULEHANDLE;
typedef void* MSP_LIBHANDLE;

MSP_LIBHANDLE msp_LoadLibrary( const char* lib_name );
int msp_FreeLibrary( MSP_LIBHANDLE lib_handle );

void* msp_GetProcAddress( MSP_LIBHANDLE lib_handle, const char* fun_name );

MSP_MODULEHANDLE msp_GetModuleHandle( const char* module_name );
int msp_GetModuleFileName( MSP_MODULEHANDLE module_handle, char* module_name, unsigned int name_max_size );

#ifdef __cplusplus
} /*extern "C"*/
#endif

#endif	/* __MSP_LIB_H__ */
